<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /**
       * promise.then()返回的新promise的结果状态由什么决定?
       *
       * 由 then 所指定的回调函数的执行结果决定.  这一句要背过
       */
      let p = new Promise((resolve, reject) => {
        // resolve("OK");
        reject('Error');
      });

      let result = p.then(
        (v) => {
          //   console.log(v);
          //1. 返回值不是 promise 实例对象. then 返回 promise 状态为『成功』
          //   return 123;
          //   return "abcxyz";
          //2. 返回值是 promise 实例对象. then 返回的 promise 由该 promise 决定
          //   return new Promise((resolve, reject) => {
          //     // resolve('YES');
          //     // reject('NoNoNo')
          //   })
          //3. 抛出一个错误. then 返回的 promise 就是失败的.
          throw '123';
        },
        (r) => {
          console.log(r);
        }
      );

      console.log(result);
    </script>
  </body>
</html>
